System for setting print end notification either when data transmission ends or when printing ends based on print check ability of printing devices

ABSTRACT

An information processor sets timing for a print end notification to when printing by a network printer ends or when transmission of data to a print device ends. If the timing for the print end notification is set to when transmission ends, the print end notification (display) is performed when transmission of data to the network printer ends, while if the timing for the print end notification is set to when printing ends, the print end notification is displayed when printing by the network printer ends.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an information notification apparatus,an information notification method, a computer-readable program and astorage medium.

2. Related Background Art

Conventionally, there have been printing systems in which an informationprocessor such as a computer and a plurality of printers (devices) areconnected in a communicatable manner, the information processor receivesa print end notification from any of printers that can perform a printcheck, i.e. a function to check the print status, and the informationprocessor displays the print end notification on its display section. Insuch a print system, devices of models that can perform print check anddevices of models that cannot perform print check can both beregistered.

In the conventional print systems described above, for example, it maybe desirous if a print end notification be displayed at the time whendata I transmission from an information processing apparatus to a device(i.e., a print device) ends, i.e., at the time of “completion of datatransmission”, when the device does not have the function to performprint check. Also, it may be desirous if a print end notification bedisplayed at the time when a device (i.e., a print device) confirms endof printing, i.e., at the time of “print confirmation”, when the devicehas the function to perform print check.

However, such conventional examples entail the following problems: In aprint system in which both devices of models that can perform printcheck and devices of models that cannot perform print check areregistered, a setting for displaying a print end notification cannot beappropriately chosen among the cases upon completion of datatransmission from an information processor to a device and uponcompletion of printing by the device. In addition, a default setting,which is automatically set when a user does not designate any setting,cannot be set in advance from a range of display settings for print endnotification, which are relevant to capabilities of each device, and canbe used for each device. Furthermore, if the print end notificationsetting is automatically changed due to impact from other settings,there was no way for the user to be informed that the print endnotification setting had been changed.

SUMMARY OF THE INVENTION

The present invention allows a user to choose to have a print endnotification performed either when job transmission ends or whenprinting ends based on difference in capabilities between print devicesand the system in terms of their print check function.

The present invention makes it possible to set a default print endnotification setting within the range of usable print end notificationsettings without a user's determining the capabilities of devices to beregistered.

The present invention changes the print end notification settingautomatically to a usable setting when other settings that impact theprint end notification setting are changed and notifies the user thatthe print end notification setting has been automatically changed.

In accordance with an embodiment of the present invention, aninformation notification apparatus includes: an input unit for settingthe timing to make a print end notification to when printing by a deviceends or to when data transmission to the device ends; and a notificationunit for making the print end notification when data transmission to thedevice ends if the timing for the print end notification is set to whentransmission ends, and for performing the print end notification whenthe printing by the device ends if the timing for the print endnotification is set to when printing by the device ends.

In addition, in accordance with another embodiment of the presentinvention, an information notification method includes: an input step ofsetting the timing to make a print end notification to when a deviceends printing or when data transmission to the device ends; and anotification step of making the print end notification when datatransmission to the device ends if the timing for the print endnotification is set to when data transmission to the device ends, andmaking the print end notification when the device ends printing if thetiming for the print end notification is set to when the device endsprinting.

Furthermore, a computer-readable program in accordance with anembodiment of the present invention causes a computer to execute aninput function for setting the timing to make a print end notificationto a when a device ends printing or when data transmission to the deviceends; and a notification function for making the print end notificationwhen data transmission to the device ends if the timing to make theprint end notification is set to when data transmission to the deviceends, and for making the print end notification when the device endsprinting if the timing for the print end notification is set to when thedevice ends printing.

Other objects, features and advantages of the invention will becomeapparent from the following detailed description taken in conjunctionwith the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a block diagram of a configuration of an informationprocessing system in accordance with a first embodiment of the presentinvention.

FIG. 2 shows a block diagram of a configuration of an informationprocessor in accordance with the first embodiment.

FIG. 3 shows a diagram of a configuration of a memory map of a RAM ofthe information processor in accordance with the first embodiment.

FIG. 4 shows a diagram of a configuration of a memory map of an FD ofthe information processor in accordance with the first embodiment.

FIG. 5 shows a diagram indicating how a network printer control programand related data are supplied by an FD drive and an FD to theinformation processor in accordance with the first embodiment.

FIG. 6 shows a diagram indicating how a print job issued from a generalapplication is processed in a print job control system in aclient-server model of the information processing system in accordancewith the first embodiment.

FIG. 7 shows a diagram indicating the relations between a print systemand a print job in the print job control system, as well as the overviewof processing, in accordance with the first embodiment.

FIG. 8 shows a diagram of a configuration of a general-purpose printfile in accordance with the first embodiment.

FIG. 9 shows a flowchart of a processing for creating a port inaccordance with the first embodiment.

FIG. 10 shows a flowchart of a processing for changing port settings inaccordance with a second embodiment of the present invention.

FIG. 11 shows a diagram of a port adding screen in accordance with thefirst embodiment.

FIG. 12 shows a diagram of a device's detail tab screen in accordancewith the first and second embodiments.

FIG. 13 shows a diagram of a port editing screen in accordance with tothe first and second embodiments.

FIG. 14 shows a diagram of a device's detail tab screen according to thefirst embodiment.

FIG. 15 shows a diagram of a setting change message for print endnotification timing in accordance with the second embodiment.

FIG. 16 shows a flowchart of a print end notification processing inaccordance with the first embodiment.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following is a detailed description, based on drawings, of preferredembodiments according to the present invention.

First Embodiment

First, a first embodiment of the present invention will be describedbelow. FIG. 1 is a block diagram of the configuration of an informationprocessing system according to the first embodiment. The informationprocessing system comprises an information processor 101 as a server,information processors 102, 103, 104 as a plurality of client computers(hereinafter called “clients”), and a printer 105 as a plurality ofnetwork printers, which are mutually connected via a network 106.According to the present information processing system, one or aplurality of client computers is assumed to be connected to the system.In the present example, only one network printer is indicated in thedrawing for the sake of convenience.

In FIG. 1, the information processors 102, 103, 104 that serve as clientcomputers (clients) are connected to the network 106 via network cablessuch as Ethernet®, are capable of executing various programs such asapplication programs, and have installed on them printer drivers with afunction to convert print data into a printer language compatible withthe network printer 105. The clients support a plurality of printerdrivers. The network printer 105 may be of various types, such as alaser beam printer that uses the electrophotography method, an inkjetprinter that uses the inkjet method, or a thermal transfer printer thatuses the thermal transfer method.

The information processor 101 as the server (hereinafter called a “printserver”) according to the first embodiment is connected to the network106 via a network cable, and it accumulates files used on the network106 and monitors the usage status of the network 106. The print server101 manages a plurality of network printers 105 connected to the network106. According to the configuration of the first embodiment, the clientcomputers 102-104 and the print server 101 are general informationprocessors, and the client computers 102˜104 and the print server 101each stores in an executable manner a print control program thatperforms different controls.

The print server 101 may also have functions of the client computers102˜104. In addition, the print server 101 has functions to store andprint print jobs containing print data requested to be printed by theclient computer 102, 103 or 104; to receive from the client computer102, 103 or 104 only job information that does not contain print data,manage print queue for the client computers 102, 103 and 104, and notifyto the client computer 102, 103 or 104 whose turn in the print queue hasarrived a transmission permission for a print job that contains printdata; and to obtain status information on the network printer 105 andvarious print job information and notify such information to the clientcomputer 102, 103 or 104.

The network printer 105 which is a printing device is connected to thenetwork 106 via a network interface, not shown, and it analyzes printjobs that contain print data sent from the client computers 102˜104,converts the print data into dot images on a page-by-page basis, andprint one page at a time. The network 106 is connected to the clientcomputers 102, 103, 104, the print server 101 and the network printer105.

FIG. 2 is a block diagram of the configuration of the informationprocessor according to the first embodiment. The information processoris equipped with a CPU 200, a ROM 201, a RAM 202, a Floppy® disk (FD)drive 203, an FD 204, a hard disk (HD) 205, a keyboard 206, a display207, a system bus 208 and an interface 209. The client computers 102,103, 104 which are information processors have the hardwareconfiguration indicated in FIG. 2, and the print server 101 which is aninformation processor also has the hardware configuration that is thesame as or equivalent to the configuration indicated in FIG. 2.Consequently, FIG. 2 will be described as a block diagram that describesthe configuration of the client computers 102-104 and of the printserver 101.

In FIG. 2, the CPU 200 is a control device for the informationprocessor; it executes application programs, printer driver programs, anOS (operating system) and a network printer control program according tothe present invention that are all stored on the hard disk (HD) 205, andperforms a control to temporarily store in the RAM 202 information andfiles required for the execution of the programs. The ROM 201 is aread-only memory device and stores programs such as basic I/O programsand various data such as font data and template data used in documentprocessing. The ROM 202 is a temporary storage device and functions as amain memory and a working area for the CPU 200.

The FD drive 203 is a storage medium reading device and, as indicated inFIG. 5 described later, can load on the information processor (acomputer system) programs stored on the FD 204 that serves as a storagemedium. The storage medium is not limited to the FD and may be any otherstorage medium, such as a CD-ROM, CD-R, CD-RW, PC card, DVD, IC memorycard, MO or a memory stick. The FD 204 is a storage medium that storesprograms that the computer can read and is mounted in a detachablemanner on the FD drive 203.

The hard disk (HD) 205 is one of external storage device and functionsas a large capacity memory; it stores application programs, printerdriver programs, the OS, a network printer control program and relatedprograms. In addition, a spooler that serves as a spooling module isstored on the HD 205. The spooling module refers to a client spooler inthe client computers 102-104 and to a server spooler in the print server101. The print server 101 also generates and stores on the HD 205 tablesfor storing print jobs received from the client computers 102-104 andfor controlling the print job queue.

The keyboard 206 is an instruction input device that a user uses toinput and instruct such instructions as device control commands to theclient computers 102-104, as well as an instruction input device that anoperator or an administrator uses to input and instruct suchinstructions as device control commands to the print server 101. Thedisplay 207 is a display device that displays commands inputted throughthe keyboard 206 or the status of the network printer 105. The systembus 208 governs the flow of data within the information processor suchas the client computers 102-104 and the printer server 101. Theinterface 209 is an input/output device; the information processorsexchange data with external devices via the interface 209.

FIG. 3 is a diagram of an example of a memory map of the RAM 202 of theinformation processor shown in FIG. 2 and indicates a memory map whenthe network printer control program loaded from the FD 204 has beenloaded onto the RAM 202 and has become executable. A memory map 300 ofthe RAM 202 comprises a basic I/O program 301, an OS 302, a networkprinter control program 303, related data 304 and a work area 305.

An example in which the network printer control program and the relateddata are directly loaded onto the RAM 202 from the FD 204 is indicatedaccording to the first embodiment, but a network printer control programthat is already installed on the HD 205 can be loaded onto the RAM 202every time the network control program is operated through the FD 204.Further, the medium that stores the network printer control program maybe a CD-ROM, CD-R, CD-RW, PC card, DVD, IC memory card, MO or a memorystick, in addition to the FD. The network printer control program canalso be stored on the ROM 201 and made a part of the memory map throughreconfiguration, and the CPU 200 can directly execute the networkprinter control program. Moreover, software that realizes functionsequivalent to those of the devices described can be utilized as analternative to the hardware apparatus.

The network printer control program is sometimes simply called a printcontrol program. The print control program in the client computers102-104 includes a program that controls instructions for changing printdestination of print jobs and changing print queue; in the print server101 the print control program includes a program that controls the queueof print jobs and notifies the end of print jobs and print destinationchange requests.

The print control program according to the present invention thatperforms such controls may be divided into a module that is installed onthe client computers 102-104 and a module that is installed on the printserver 101, or it may be a single print control program that functionsas a print control program for a client computer or for a print serverdepending on the environment in which it is executed. Alternatively, amodule with functions of the print control program for a client computerand a module with functions for a print server can both be installed ona single computer, where the two modules are operated in parallelsimultaneously or pseudo-simultaneously through time division.

In FIG. 3, the basic I/O program 301 is a region with a program havingIPL (Initial Program Loading) functions that cause the OS to be readfrom the HD 205 to the RAM 202 and the operations of the OS to beginwhen the power source of the information processor is turned on. The OS302 is a region that stores the operating system. The network printercontrol program 303 is stored in a region reserved in the RAM 202. Therelated data 304 are stored in a region reserved in the RAM 202. Thework area 305 has a region in which the CPU 200 executes the networkprinter control program.

FIG. 4 is a diagram of an example of a memory map of the FD 204 of theinformation processor in FIG. 2. The memory map of the FD 204 comprisesvolume information 401, directory information 402, a network printercontrol program 403 and related data 404.

In FIG. 4, reference numeral 400 denotes data contents of the FD 204.The volume information 401 indicates data information. The directoryinformation 402 is file management information of the FD 204. Thenetwork printer control program 403 is the print control programdescribed in the first embodiment. The related data 404 are data relatedto the network printer control program 403. The network printer controlprogram 403 has been programmed based on a flowchart described in thefirst embodiment, and the network printer control program 403 has thesame configuration in both the client computers 102-104 and in the printserver 101 according to the first embodiment.

FIG. 5 is a diagram indicating how the network printer control programand the related data are supplied by the FD drive 203 and the FD 204 tothe information processor in FIG. 2. Elements in FIG. 5 that areidentical to elements in FIG. 2 are assigned the same numbers.

In FIG. 5, the FD 204 stores the network printer control program and therelated data described in the first embodiment. The network printercontrol program and the related data are supplied to the informationprocessor via the FD drive 203 and the FD 204.

Next, a description will be made as to a print job control system in theinformation processing system according to the first embodiment thatperforms print processing such as a distributed printing, in which aprint job is distributed among a plurality of network printers toperform printing; a broadcast printing, in which a print job involving aplurality of copies is distributed among a plurality of network printersfor each network printer to print one copy; and a substitute printing,in which a printing by a network printer is substituted by anothernetwork printer.

In the first embodiment, a driver, which can uniformly instruct printsettings to individual printer drivers that each corresponds to one of aplurality of printer devices (network printers) and which generates basedata (general-purpose document data) for generating general-purposeprint files to allow a de-spooler (described in detail later) to notifya draw instruction to each printer driver, is called a group printerdriver. Individual printer drivers that are dependent on print devicesare called member printer drivers.

FIG. 6 is a diagram that indicates how a print job issued from a generalapplication such as Microsoft Word® is processed in a print job controlsystem in a client-server model of the information processing system.

In FIG. 6, a client machine 600 is a machine on which a client module ofthe print job control system operates. Normally, when an instruction toprint is given, an application program 601 causes a series of drawinstructions to be generated via an OS's graphic functions and transfersthe draw instructions to a Windows® spooler 604 via a group printerdriver 603. The Windows® spooler 604 transfers print job data to a portmonitor selected by a user and performs a procedure to send the printjob data to one or more print devices (printing devices) 650. Accordingto the first embodiment, the user designates a port monitor for printjob control system 621 (hereinafter simply referred to as a “job controlport monitor” in the first embodiment) in advance and instructsprinting.

The application program 601 generates a series of draw instructions viathe OS. Upon receiving the draw instructions, the group printer driver603 generates general-purpose document data, which are used to generatea general-purpose print file, and sends the general-purpose documentdata not to the port monitor that sends the print job data to the printdevices 650, but to the job control port monitor 621 as print job data.Instead of sending the print job data to the print devices 650, the jobcontrol port monitor 621 sends the print job data to a print service forprint job control system 622 (hereinafter abbreviated as a “job controlprint service”).

The job control print service 622 is equipped with a function to managejob/device status managed by a server for print job control system 630(hereafter simply referred to as a “job control server” in the firstembodiment). Further, in situations in which the print devices 650 andthe client machine 600 operate in a peer-to-peer connection environment(i.e., a connection environment without hierarchical relationship), thejob control print service 622 also has functions to manage informationon device status and job status notified from the print devices 650 andto issue predetermined instructions to the print devices 650. This iscomparable to a function for managing device information and jobinformation of a plurality of print devices 650.

A print manager for print job control system 623 (hereinafterabbreviated as a “job control print manager” in the first embodiment) isa program that provides a user interface (UI) that allows a user tocheck the status of a print job or to operate a print job within the jobcontrol print service 622. The job control print manager 623 sends andreceives information to and from the job control print service 622 via asoftware interface (API: Application Program Interface) of the jobcontrol print service 622 and has a function to mainly obtain statusinformation of the external print devices 650 managed by the job controlprint service 622 as events.

Among conceivable types of event notifications are notifications oferror/warning information such as warnings to indicate low toner,communication failure between the client machine 600 and the printdevices 650, insufficient memory, and a paper delivery tray full ofpaper; and a notification of normal status information to indicate thatthe normal status has been resumed from an error status.

The server for print job control system 630 (simply referred to as the“job control server” in the first embodiment) performs centralizedcontrol (i.e., scheduling) of the timing for the job control printserver 622 in each client machine 600 to send print job data to theprint devices 650. Additionally, the job control server 630 has afunction to monitor printer status such as print in execution, powercontrol status and failure information (paper jam) of each of the printdevices (printing devices) 650 that is communicatable via a network, aswell as a function to notify events to the job control printer service622. However, with regard to monitoring changes in print status, the jobcontrol print service 622 can obtain notifications of changes in status(i.e., events) directly from the print devices 650.

A management console for print job control system 633 (hereinaftersimply referred to as a “job control management console” in the firstembodiment) can monitor the entire print job control system byexchanging information and instructions with the job control server 630via an API that allows the job control server 630's software to access.Furthermore, the job control server 630 communicates with each printdevice 650 using a device information control module 631 and obtains andoperates information concerning print jobs and operation status withineach print device 650. The information obtained can be transferred tothe job control print service 622 of the client machine 600.

Next, a description will be made as to a printing performed by the groupprinter driver 603 of the client machine 600 according to the firstembodiment.

The group printer driver 603 generates general-purpose document data, asdescribed above, based on a series of draw instructions generated by theapplication program 601. The general-purpose document data are convertedinto a general-purpose print file, which is a file in an intermediateformat that is not dependent on the type of the print devices 650, bythe job control print service 622. The configuration of thegeneral-purpose print file will be described later.

As described earlier, the general-purpose print file is (a) transferredfrom the Windows® spooler 604 to the job control port monitor 621 and(b) led to the job control print service 622. The job control printservice 622 (c) generates draw instructions based on the general-purposeprint file according to the type of the job control to be performed forthe print job, and a PDL (Page Description Language) driver 602 convertsthe draw instructions into a PDL file that the print devices 650 caninterpret.

In FIG. 6, an example in which a job control to divide a print job intotwo print jobs in the job control print service 622 is shown, and theexample of generating two member jobs is indicated by two arrows (c).The PDL files generated by the PDL driver 602 are (d) transferred to theWindows® spooler 604 and to the job control port monitor 621 and (e)transferred again to the job control print service 622. The job controlprint service 622 (f) sends print job data in PDL format to the printdevices 650 according to instructions from the job control server 630.

The job control print service 622 follows print instructions containedin the general-purpose print file and logically divides onegeneral-purpose print file into a plurality of print jobs and sends themto different print devices, or re-sends to a different printing devicethe print job data that had already been sent to another print device.Arrows (c), (d), (e) and (f) in FIG. 6 indicate the route of print jobdata in such cases.

On the other hand, if application software creates a general-purposeprint file and directly sends the general-purpose print file as a printjob, the manner in which information is transferred to the group printerdriver 603 and the content of the processing that takes place in thegroup printer driver 603 differ from the manner in which these areprocessed in the case of a general application. As described above, whenusing a general application, the application program 601 calls up a GDI(Graphics Device Interface) function of the Windows®, as does ordinaryprinter drivers, when transferring draw information to the group printerdriver 603; the group printer driver 603 generates general-purposedocument data according to the GDI function; and the general-purposedocument data thus generated are made into a general-purpose print fileby the job control print service 622.

In contrast, in the case of an application that directly generates ageneral-purpose print file, the application program 601 has ageneral-purpose print file to begin with and supplies the file to thegroup printer driver 603. The group printer driver 603 rewrites asnecessary, based on the print method set in advance, print instructionscontained in the general-purpose print file and sends the result to theWindows® spooler 604.

FIG. 8 is a diagram of an example of the configuration of ageneral-purpose print file. The general-purpose print file used in thefirst embodiment comprises a print instruction section 8-a and adocument data section 8-b. The print instruction section 8-a is a partthat describes document information and print instructions. The documentdata section 8-b is application data converted into general-purposeformat data, namely data in a format that is not dependent on printerlanguages.

The print instruction section 8-a comprises a header section, a pageinformation section, a print format instruction section, an outputmethod instruction section, a group printer driver setting informationsection, a member printer number section, a member printer driver namesection, and a member printer driver setting information section.

The header section is a part that stores information such asgeneral-purpose print file version identification and file information.The page information section is a part that stores information such asthe number of pages and the size of each page in document data containedin the document data section 8-b. The print format instruction sectionis a part that stores information relating to output format, such asprinting page range, number of copies, document data impositioninformation (N-UP and binding printing), staple instructions and holepunching instructions. The output method instruction section is a partthat stores information such as distributed printing, color-monochromedistributed printing, substitute printing and broadcast printing as anoutput method.

The group printer driver setting information section is a part thatstores setting information of the group printer driver 603's UI,described later. The member printer number section is a part that storesthe number of member printers to which the group printer driver 603 iscorrelated. The printer member driver name section stores the printerdriver name of each member printer. The member printer driver settinginformation section stores driver UI setting information of each memberprinter, such as DEVMODE information. The member printer driver namesections and the member printer driver setting information sections eachhave storage areas in numbers that correspond to the number of themember printers registered in the member printer number section.

The group printer driver 603 described in FIG. 6 stores in the printinstruction section 8-a the setting of its GUI (Graphical UserInterface) when it generates the general-purpose print file. Inaddition, the group printer driver 603 converts the data received in theWindows® GDI into general-purpose data and records them as document datain the document data section 8-b of the general-purpose print file.

Next, referring to FIG. 7, the relations between a print system providedby Windows® (and a print job in the print job control system, as well asthe overview of processing, will be described in greater detail.

A print job control system 700 in FIG. 7 represents the scope of a printjob control system straddling physical machines on which server andclient control programs operate. Output ports 711 (e.g., 711A and 711Bin this embodiment) managed by the server are correlated to proxy outputports 712 (e.g., 712A and 712B in this embodiment) of the client's jobcontrol print service 622, such that the server comprehensively managesall proxy output ports on each of the clients correlated to each outputport 711.

In the first embodiment, actual print job data are retained in the proxyoutput ports 712 of individual clients. The job control server 630 doesnot perform a send processing for the print job data itself, but onlyinstructs the job control print service 622 to send print jobs. Based onsuch instructions, the client's job control print service 622 sendsprint job data to the print devices 650.

Next, a description will be made as to a processing that takes placewhen the print job control system 700 performs a value-added printingsuch as substitute printing, distributed printing or broadcast printing.

When the print job control system 700 performs a value-added printingsuch as substitute printing, distributed printing or broadcast printing,the user or the application program 601 must issue a print job to theprint devices 650 allocated by the group printer driver 603, asdescribed above. The job control print service 622 receives as ageneral-purpose print file via the job control port monitor 621 the jobdata that has been processed by the group printer driver 603. The jobcontrol print service 622 receives the job, and issues via a de-spooler701 the job (i.e., member jobs) to different print devices for which thePDL drivers are allocated in order to have the print devices perform theprinting.

When this takes place, the de-spooler 701 interprets the printinstruction section 8-a of the general-purpose print file described inFIG. 8, processes document data in the document data section 8-b,converts them into Windows® GDI, gives print instructions to concernedprinter drivers, and issues print jobs. For example, if an instructionfor 2-UP is recorded in the print format instruction section of theprint instruction section 8-a, document data for 2 pages are compressedand laid out on one page. When performing a distributed printing orbroadcast printing, a job is issued to each of a plurality of memberprinters described in the print instruction section 8-a according tosuch settings. For substitute printing, when conditions for substitutionare met, a member job is issued according to settings made in advance inautomatic substitution and according to the user's operations in manualsubstitution. Furthermore, a mode in which a module other than thede-spooler 701 extracts instruction information corresponding to eachmember printer driver from the print instruction section 8-a and thede-spooler 701 interprets print instructions extracted for each memberprinter driver is also conceivable.

When issuing jobs to various member printers, the de-spooler 701 mustcreate DEVMODE for each member printer as a print instruction thatcorresponds to each member printer driver, and the DEVMODE for eachmember printer is created by appropriately reflecting on it the contentdescribed in the print instruction section 8-a.

The client's job control print service 622 receives via the job controlport monitor 621 the PDL data of various member jobs rendered by the PDLdriver 602, notifies information concerning the jobs received to theserver, and temporarily retains the job data in its proxy output queues(proxy output ports) 712. Thereafter, the job control print service 622sends the job data to the print devices 650 upon receiving atransmission instruction from the job control server 630.

<Processing for Creating a Port>

Next, referring to a flowchart in FIG. 9 and diagrams in FIGS. 11, 12,13 and 14, a description will be made as to the processing to create aport correlated to a print device as a setting method in accordance withthe first embodiment of the present invention. FIG. 9 is a flowchart ofthe processing to create a port. The flowchart in FIG. 9 is executed bythe CPU 200 of the information processor (the print server 101 or theclient computers 102-104) in FIGS. 1 and 2 based on the network printercontrol program according to the present invention and stored on the HD205. Screens in FIGS. 11, 12, 13 and 14 are displayed on the display 207of the information processor. On the display 207, RAW or LPR can beselected as the protocol between the information processor and the printdevice (see FIG. 11).

In the setting method according to the present embodiment, in step S901,a user begins to create a port correlated to a print device, which is aprint job output destination; a UI for adding ports can be open, forexample, in this step. According to the first embodiment, port creationis described as taking place by, for example, a user through a settingUI requesting the job control print service 622 on the same machine viathe API to create a port and the port creation's being recorded assetting information for each port in a storage region of registry.However, if the port creation is recorded as setting information foreach port and if it can be read when a UI for print end notificationthat notifies the end of printing by a print device is displayed on thedisplay device of the information processor, the port creation is notdependent on any storage device. Further, the location for storingsetting information for each port can be another PC or either theclients or server of one example of the first embodiment; it can bestored anywhere as long as it can be read before the UI for print endnotification is displayed.

Next, in step S902, whether print devices correlated to the ports shouldbe searched from the network is determined. If it is determined in stepS902 to search for the print devices, print devices that can be set aresearched from the network and a list of addresses and product names ofprint devices that can be used on the network and are found as a resultof the search is displayed in step S903. Such a search can be realizedby using such scheme as broadcast-transmitting SNMP (Simple NetworkManagement Protocol) packets and analyzing reply packets, for example.However, the method to search for print devices does not dependent onprotocols or print device selection methods, and any one of methods tosearch for print devices that may be used by the system according to thepresent invention can be adopted. Furthermore, if the user knowsaddresses of print devices to be correlated and other informationrequired for the setting, the user can proceed to step S904 and create aport.

Next, in step S904, the user designates the name of the port to becreated, the address of the print device to be correlated to the port,and device model name using a UI shown in FIG. 11, for example. In thefirst embodiment, the device model name is information that specifiesthe print device type and a plurality of print devices can berepresented under one device model name if there is no difference amongthem in terms of equipment control; the device model name does notnecessarily have to be a product name and can be any information thatidentifies the type of print device in a manner required for otherfunctions of the present system.

Next, in step S905, an ini file (initialized file: a file that recordssetting information for Windows® applications) is referred to regardingwhether each device model designated has the capability to execute aprint check function and whether the execution of the print checkfunction would be changed as a result of setting conditions of otherfunctions. If it is determined in step S906 that a device model is not aprint device that can execute the print check function, the timing fordisplaying the UI for print end notification is set, in step S907, in adetailed setting for each port to “when data transmission to the printdevice is completed” (hereinafter referred to as “Upon completion ofdata transmission”), and the timing setting for print end notificationfor a print device that cannot execute the print check function is setso that the timing setting for print end notification cannot be set to“when printing by the print device is completed” (hereinafter referredto as “Upon completion of printing”). When the user inputs settingsrequired to add a port and presses the OK button, the settings arerecorded in a registry as setting information for the port in step S908and the processing to create a port is terminated in step S909.

Although not necessarily required for the processing to add ports, oneexample of making it impossible to change the timing for print endnotification for a print device that cannot execute the print checkfunction to “Upon completion of printing” is to gray out a radio buttonas in FIG. 12, so that the radio button cannot be selected; in this way,the current timing setting for print end notification can be displayed,while making it impossible to change the timing setting for the printend notification to “Upon completion of printing”. The print endnotification may be in any of other forms, such as, for example, “Uponconfirmation of completion of printing”, etc.

In the meantime, if it is determined in step S906 that the device modelcorrelated to the port being created can execute the print checkfunction, whether the print check function can be executed without beingdependent on other setting conditions is determined in step S910. If itis determined in step S910 that the port is to be created for a devicemodel that can unconditionally execute the print check function, theprocessing proceeds to step S911, where the timing for print endnotification is set to “when printing by the print device is completed”(hereinafter referred to as “Upon completion of printing”); next theprocessing proceeds to step S908, where the settings are recorded in theregistry as information for the port, and to step S909, where theprocessing to add the port is terminated.

On the other hand, even if a device model is set as a device model thatcan execute the print check function, if the device model is determinedin step S910 as a device model that cannot execute the print checkfunction due to other setting conditions that impact devices to performthe job print check, the processing proceeds to step S912 to create aport whose setting conditions allow the port to execute a print check aspart of its default values. For example, in a device model that canexecute the print check function using port 9100 in RAW mode but cannotexecute the print check function when a job is sent in LPR (Line PrinterRemote: a remote print protocol used when a printer is shared inTCP/IP), a setting to send jobs in RAW mode for the port 9100 is set asthe default setting, as shown in FIG. 13. Next, in step S911, the timingsetting for the print end notification is set to “Upon completion ofprinting”. Next, the settings are recorded in the registry as settinginformation for the port in step S908 and the processing to create aport is terminated in step S909.

If a device model can execute the print check function, the user canselect the timing for the print end notification as either when printingends (i.e., “Upon completion of printing”) or when transmission ends(i.e., “Upon completion of data transmission”). As a result, whencreating a port with settings of a device model that can execute theprint check function, the user has the choice of setting the timing forthe print end notification as either when transmission ends or whenprinting ends, as shown in FIG. 14, unlike with devices that cannotexecute the print check function.

The processing to create a port as the first embodiment of the presentinvention can be realized through the procedure described above.

<Print End Notification Processing>

Next, a description will be made as to a print end notificationprocessing with reference to FIG. 16. FIG. 16 shows a flowchart of theprocessing to perform a print end notification (display) based onsettings in the flowchart in FIG. 9 and in a flowchart in FIG. 10, whichwill be described in detail under the second embodiment, as well as onthe settings in the screen in FIG. 14. The flowchart in FIG. 16 isexecuted by the CPU 200 of the information processor (the print server101 or the client computers 102-104) in FIGS. 1 and 2 based on thenetwork printer control program according to the present invention andstored on the HD 205.

The print end notification processing starts in step S1601 and datatransmission to a print device begins in step S1602. In step S1603,whether the data transmission to the print device has finished isdetermined. If it is determined that the data transmission has finished,the processing proceeds to step S1604. In step S1604, a determination ismade as to whether not the timing for the print end notification is setto “Upon completion of data transmission” in the settings in FIGS. 9 and10 and in the setting of the screen in FIG. 14. If it is determined instep S1604 that the timing is set to “Upon completion of datatransmission”, the processing proceeds to step S1605, where the end ofprinting is recognized and a print end notification (display) isperformed on the display 207.

If it is determined in step S1604 that the timing for print endnotification is not set to “Upon completion of data transmission”, i.e.if it is determined that the timing for print end notification is set to“Upon completion of printing”, the processing proceeds to step S1606,where it is determined whether printing by the print device hasfinished. The determination method employed in this step can be adetermination of print completion based on a reception of a printcompletion signal from the print device. If the job involves printing 20pages, for example, receiving 20 paper delivery signals, each of whichis outputted every time the print device prints one page, can bedetermined as the completion of printing. If it is determined in stepS1606 that the printing has finished, the processing proceeds to stepS1605, where the end of printing is recognized and a print endnotification (display) is performed on the display 207.

The processing in FIG. 16 can be applied to distributed printing inwhich a print job is distributed among a plurality of print devices toperform printing; in this case, a print end notification is performed instep S1605 for each print device designated in distributed printing, andwhen the print end notification has been performed for all printdevices, a distributed print end notification (display) can be performedon the display 207.

The print end notification processing as the first embodiment accordingto the present invention can be realized through the procedure describedabove.

As described above, there is an effect according to the first embodimentthat allows a user to choose between a setting under which a print endnotification is displayed when data transmission to a print device endsand a setting under which a print end notification is displayed when aprint device ends printing based on the difference in capabilitiesbetween print devices and the system in terms of their print checkfunction. Furthermore, there is another effect that allows the defaultprint end notification setting to be set within the range of usableprint end notification settings even when the user does not determinethe capability of a print device to be registered with the system.

Second Embodiment

Next, a second embodiment of the present invention will be describedbelow. The configuration of an information processing system (FIG. 1),the configuration of an information processor according to theinformation processing system (FIG. 2), the overview of processing in aprint job control system for a print job issued by a general applicationin a client-server model of the information processing system (FIG. 6),and the relations between a print system and a print job in the printjob control system, as well as the overview of processing (FIG. 7)according to the second embodiment are the same as the first embodimentand their descriptions are therefore omitted.

<Processing for Changing Port Settings>

Next, a description will be made below as to a processing for changingsettings of a port correlated to a print device in accordance with thesecond embodiment of the present invention with reference to a flowchartin FIG. 10 and diagrams in FIGS. 12, 13 and 15. FIG. 10 is a flowchartof the processing for changing port settings. The flowchart in FIG. 10is executed by a CPU 200 of an information processor (a print server 101or client computers 102-104) in FIGS. 1 and 2 based on a network printercontrol program stored in an HD 205. Screens in FIGS. 12, 13 and 15 aredisplayed on a display 207 of the information processor.

The procedure in the second embodiment is applicable to any settingchanges as long as the changes are for port settings, but first adescription will be made as to a situation in which a port has alreadybeen created, where the port is correlated to a device model that canexecute a print check function and whose timing setting for a print endnotification can be changed as a result of other settings.

Step S1001 is applicable when beginning a setting change of a port thathas already been created, and any setting change may be performed aslong as the change is for a port setting. In step S1002, if the settingchange is a change that does not affect the execution of the print checkfunction, such as port name, the processing proceeds to step S1003. Instep S1003, since it is known that the device model can execute theprint check function, the processing proceeds to step S1007 instead ofchanging the timing setting for print end notification; in step S1007,the changed setting is stored in a registry as setting information foreach port and in step S1008 the port setting change processing isterminated.

If a setting change that affects the execution of the print checkfunction is made in step S1002, for example, if a port setting changethat affects the timing setting for print end notification such aschanging the protocol of port 9100 from RAW mode to LPR for a portcorrelated to a device model that can execute the print check functionin the RAW mode for port 9100 but cannot execute the print checkfunction when a job is transmitted in LPR, for example, is made in stepS1002, a determination is made in step S1003 as to whether the settingallows the device to execute the print check function. If it isdetermined in step S1003 that the setting does not allow the device toexecute the print check function, it is determined in step S1004 as towhether the current timing setting for the print end notification is setto “Upon completion of printing”.

If it is determined in step S1004 that the timing setting for print endnotification is set to “Upon completion of data transmission”, theprocessing proceeds to step S1007 without changing the setting for printend notification since the device can give a print end notificationregardless of its capability regarding the print check function; in stepS1007, the changed setting for the port is recorded in the registry andin step S1008 the port setting change processing is terminated. If it isdetermined in step S1004 that the timing setting for print endnotification is set to “Upon completion of printing”, the processingproceeds to step S1005, where a message such as shown in FIG. 15, forexample, that notifies the user that the timing setting for the printend notification becomes changed due to impact from other settingchanges is displayed; in step S1006, the timing for the print endnotification is automatically changed to when transmission ends; in stepS1007, the changed setting for the port is recorded in the registry asinformation for each port and in step S1008 the port setting changeprocessing is terminated.

If the timing setting for print end notification is displayed after thesetting has been changed to a setting that does not allow the device toexecute the print check function, the related setting becomes grayed outas in FIG. 12 so that the user cannot change the timing setting to “Uponcompletion of printing”, and the setting for print end notification thatwas set to “Upon completion of printing” is changed to and displayed as“Upon completion of data transmission”.

The processing for changing port settings as the second embodiment ofthe present invention can be realized through the procedure describedabove.

As described above, there is an effect according to the secondembodiment in that when changing other settings that impact the settingfor print end notification, the setting for print end notification isautomatically changed to a setting that is usable and the user isnotified that the setting for print end notification has automaticallybeen changed.

Other Embodiments

In the first and second embodiments, printers are described as printingdevices connected to a network of an information processor system, butthe present invention is not limited to this and can be applied toinformation processing systems in which, in addition to printers,copiers and/or multifunctional equipment are connected to a network asprinting devices.

Furthermore, the present invention can be applied to a system comprisinga plurality of equipment or to a device comprising single equipment.Needless to say, the present invention can be achieved by supplying tothe system or the device a medium such as a storage medium storingprogram codes of software that realize the functions of the embodimentsdescribed above, and by having a computer (or a CPU or MPU) of thesystem or device read and execute the program codes stored on the mediumsuch as a storage medium.

In this case, the program codes themselves that are read from the mediumsuch as a storage medium realize the functions of the embodimentsdescribed above, and the medium such as a storage medium that stores theprogram codes constitute the present invention. The medium such as astorage medium on which to supply the program codes may be a Floppy®(disk, hard disk, optical disk, optical magnetic disk, CD-ROM, CD-R,magnetic tape, nonvolatile memory card, ROM, or a download via anetwork.

Furthermore, the present invention is applicable not only when theprogram codes read by the computer are executed to realize the functionsof the embodiments, but also when an OS that operates on the computerperforms a part or all of the actual processing based on theinstructions contained in the program codes and thereby realizes thefunctions of the embodiments.

Moreover, the present invention is also applicable when the programcodes that are read from the medium such as a storage medium are writtenonto a memory of an expansion board inserted into a computer or of anexpansion unit connected to a computer, and a CPU provided on theexpansion board or the expansion unit performs a part or all of theactual processing based on the instructions contained in the programcodes and thereby realizes the functions of the embodiments.

As described above the embodiments of the present invention areeffective in that a user can choose between a setting under which aprint end notification is displayed when data transmission to a printdevice ends and a setting under which a print end notification isdisplayed when a print device ends printing, based on the difference incapabilities between print devices and a system in terms of their printcheck function.

Furthermore, the embodiments of the present invention provide an effectthat allows the default print end notification setting to be set withinthe range of usable print end notification settings even when a userdoes not determine the capability of a print device to be registeredwith the system.

The embodiments of the present invention are also effective in that whenchanging other settings that impact the setting for the print endnotification, the setting for the print end notification isautomatically changed to a setting that makes it usable and can notifythe user that the setting for the print end notification hasautomatically been changed.

While the description above refers to particular embodiments of thepresent invention, it will be understood that many modifications may bemade without departing from the spirit thereof. The accompanying claimsare intended to cover such modifications as would fall within the truescope and spirit of the present invention.

The presently disclosed embodiments are therefore to be considered inall respects as illustrative and not restrictive, the scope of theinvention being indicated by the appended claims, rather than theforegoing description, and all changes which come within the meaning andrange of equivalency of the claims are therefore intended to be embracedtherein.

1. An information processing apparatus that has a port setting function,comprising: a referring unit adapted to refer to a print check abilityof a designated printing device; a discrimination unit adapted todiscriminate whether the printing device has the print check ability, inaccordance with a reference made by said referring unit; a setting unitadapted to set that a print end notification is to be made uponcompletion of printing by the printing device or upon completion of datatransmission to the printing device, in accordance with a discriminationmade by said discrimination unit; and a notification unit adapted tomake the print end notification, in accordance with a setting made bysaid setting unit, wherein said setting unit sets that the print endnotification is to be made upon completion of printing by the printingdevice, if said discrimination unit discriminates that the printingdevice has the print check ability, or sets that the print endnotification is to be made upon completion of data transmission to theprinting device, if said discrimination unit discriminates that theprinting device does not have the print check ability.
 2. An informationprocessing apparatus according to claim 1, wherein the port settingfunction includes creating a port for outputting data to the printingdevice.
 3. An information processing apparatus according to claim 1,further comprising a port setting unit adapted to set a port for theprint check ability, if said discrimination unit discriminates that theprinting device has the print check ability, but the print check abilitycannot be executed due to a specified condition.
 4. An informationprocessing apparatus according to claim 3, wherein the port for theprint check ability set by said port setting unit is a port for the RAWmode.
 5. An information processing apparatus according to claim 1,wherein the printing device includes a plurality of printers that aredesignated in a distributed printing in which a print job is divided anddistributed for printing.
 6. A method for an information processingapparatus that has a port setting function, comprising: a referring stepof referring to a print check ability of a designated printing device; adiscrimination step of discriminating whether the printing device hasthe print check ability, in accordance with a reference made in saidreferring step; a setting step of setting that a print end notificationis to be made upon completion of printing by the printing device or uponcompletion of data transmission to the printing device, in accordancewith a discrimination made in said discrimination step; and anotification step of making the print end notification, in accordancewith a setting made in said setting step, wherein said setting step setsthat the print end notification is to be made upon completion ofprinting by the printing device, if it is discriminated in saiddiscrimination step that the printing device has the print checkability, or sets that the print end notification is to be made uponcompletion of data transmission to the printing device, if it isdiscriminated in said discrimination step that the printing device doesnot have the print check ability.
 7. A method according to claim 6,wherein the port setting function includes creating a port foroutputting data to the printing device.
 8. A method according to claim6, further comprising a port setting step of setting a port for theprint check ability, if it is discriminated in said discrimination stepthat the printing device has the print check ability, but the printcheck ability cannot be executed due to a specified condition.
 9. Amethod according to claim 8, wherein the port for the print checkability set in said port setting step is a port for the RAW mode.
 10. Amethod according to claim 6, wherein the printing device includes aplurality of printers that are designated in a distributed printing inwhich a print job is divided and distributed for printing.
 11. Acomputer-executable program stored on a computer-readable medium, thecomputer-executable program for an information processing apparatus thathas a port setting function, the computer-executable program comprising:a referring step of referring to a print check ability of a designatedprinting device; a discrimination step of discriminating whether theprinting device has the print check ability, in accordance with areference made in said referring step; a setting step of setting that aprint end notification is to be made upon completion of printing by theprinting device or upon completion of data transmission to the printingdevice, in accordance with a discrimination made in said discriminationstep; and a notification step of making the print end notification, inaccordance with a setting made in said setting step, wherein saidsetting step sets that the print end notification is to be made uponcompletion of printing by the printing device, if it is discriminated insaid discrimination step that the printing device has the print checkability, or sets that the print end notification is to be made uponcompletion of data transmission to the printing device, if it isdiscriminated in said discrimination step that the printing device doesnot have the print check ability.
 12. A computer-executable programaccording to claim 11, wherein the port setting function includescreating a port for outputting data to the printing device.
 13. Acomputer-executable program according to claim 11, further comprising aport setting step of setting a port for the print check ability, if itis determined in said discrimination step that the printing device hasthe print check ability, but the print check ability cannot be executeddue to a specified condition.
 14. A computer-executable programaccording to claim 13, wherein the port for the print check ability setin said port setting step is a port for the RAW mode.
 15. Acomputer-executable program according to claim 13, wherein the printingdevice includes a plurality of printers that are designated in adistributed printing in which a print job is divided and distributed forprinting.